public class add2_19 {
    public static void main(String[] args) {
        // 注意：原问题中的 –334.4 使用的是全角破折号，这里需要修正为半角减号
        String[] literals = {"12.3", "12.3e+2", "23.4e-2", "-334.4", "20.5", "39F", "40D"};

        System.out.println("浮点数字面量验证结果:");
        System.out.println("====================");

        for (int i = 0; i < literals.length; i++) {
            try {
                // 处理带有后缀的字面量
                if (literals[i].endsWith("F") || literals[i].endsWith("f")) {
                    // 去掉F后缀后解析为float
                    float num = Float.parseFloat(literals[i].substring(0, literals[i].length() - 1));
                    System.out.println(literals[i] + " 是正确的浮点数字面量，值为 " + num + " (float)");
                } else if (literals[i].endsWith("D") || literals[i].endsWith("d")) {
                    // 去掉D后缀后解析为double
                    double num = Double.parseDouble(literals[i].substring(0, literals[i].length() - 1));
                    System.out.println(literals[i] + " 是正确的浮点数字面量，值为 " + num + " (double)");
                } else {
                    // 没有后缀，解析为double
                    double num = Double.parseDouble(literals[i]);
                    System.out.println(literals[i] + " 是正确的浮点数字面量，值为 " + num + " (double)");
                }
            } catch (NumberFormatException e) {
                System.out.println(literals[i] + " 不是正确的浮点数字面量");
            }
        }

        // 额外测试原问题中的全角破折号情况
        System.out.println("\n测试原问题中的全角破折号:");
        String originalProblemLiteral = "–334.4"; // 注意这是全角破折号
        try {
            double num = Double.parseDouble(originalProblemLiteral);
            System.out.println(originalProblemLiteral + " 是正确的浮点数字面量，值为 " + num);
        } catch (NumberFormatException e) {
            System.out.println(originalProblemLiteral + " 不是正确的浮点数字面量（使用了全角破折号）");
        }
    }
}